home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / BORL_TIP / TI100 / TI228.ASC < prev    next >
Text File  |  1991-09-11  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.   PRODUCT : TURBO PASCAL                               NUMBER : 228
  10.   VERSION : 3.0xx
  11.        OS : PC-DOS
  12.      DATE : March 13, 1986                               PAGE : 1/2
  13.     TITLE : ACTIVATING SIDEKICK FROM WITHIN A TURBO PASCAL PROGRAM
  14.  
  15.  
  16.  
  17.  
  18.   This program is an example of how a Turbo Pascal Program can be
  19.   used to activate the main menu of SideKick. It works with
  20.   SideKick 1.50 or later versions only, and with TURBO PASCAL 3.01
  21.   IBM compatible systems only.
  22.  
  23.   program ActivateSidekick;
  24.  
  25.   function Sidekick: Boolean;
  26.   const
  27.     SKactOffset = $012D;
  28.     SKverOffset = $012A;
  29.   type
  30.     RegPack     = record
  31.                     case Integer of
  32.                       1: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: Integer);
  33.                       2: (AL,AH,BL,BH,CL,CH,DL,DH         : Byte);
  34.                   end;
  35.     Address     = record
  36.                     Offset : Integer;
  37.                     Segment: Integer;
  38.                   end;
  39.     SKstr       = array[1..2] of Char;
  40.     SKstrPtr    = ^SKstr;
  41.   var
  42.     SKbios08Trap: Address absolute $0000:$0020
  43.                      { Sidekick timer tick trap };
  44.     SKbios25Trap: Address absolute $0000:$0094
  45.                      { Sidekick DOS int 25 trap };
  46.     SKfound     : Boolean;
  47.     SKstrCheck  : SKstrPtr;
  48.     R           : RegPack;
  49.  
  50.   begin
  51.     with SKbios25Trap do SKstrCheck:=Ptr(Segment, Offset-2);
  52.     SKfound:=(SKstrCheck^ = 'SK');
  53.     if not SKfound then
  54.     begin
  55.       with SKbios08Trap do SKstrCheck:=Ptr(Segment, Offset-4);
  56.       SKfound:=(SKstrCheck^ = 'SK');
  57.     end;
  58.     { Check Sidekick version number (must be >= 1.50) }
  59.     SKfound:=
  60.           (SKfound and (Mem[Seg(SKstrCheck^): SKverOffset] >= 1)
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.   PRODUCT : TURBO PASCAL                               NUMBER : 228
  76.   VERSION : 3.0xx
  77.        OS : PC-DOS
  78.      DATE : March 13, 1986                               PAGE : 2/2
  79.     TITLE : ACTIVATING SIDEKICK FROM WITHIN A TURBO PASCAL PROGRAM
  80.  
  81.  
  82.  
  83.  
  84.                    and (Mem[Seg(SKstrCheck^): SKverOffset+1] >= 50));
  85.     if SKfound then
  86.     begin
  87.       Mem[Seg(SKstrCheck^): SKactOffset]:=1;
  88.                      { Set Sidekick activate flag    }
  89.       Intr($28, R);
  90.                      { Turn control over to Sidekick }
  91.     end;
  92.     Sidekick:=SKfound;
  93.   end  { Sidekick };
  94.  
  95.   begin
  96.     if not Sidekick then Writeln('Sidekick 1.50 or later not loaded');
  97.   end.
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.